package dto

import (
	"gorm.io/gorm"
)

/**
 * @Description
 * @Date 2023/5/16 周二 10:06
 * @Author Tang-J-L <vx：17685112557>
 */

type UserBaseDto struct {
	gorm.Model
	UserName string `json:"userName" binding:"min=4" msg:"用户名格式有误"`
	Password string `json:"password" binding:"min=4" msg:"密码格式有误"`
}

type UserNameDto struct {
	UserName string `json:"userName" binding:"required,min=4" msg:"用户名格式有误"`
}

// TableName 结构体方法
func (table *UserNameDto) TableName() string {
	return "user"
}

type CreateUserDto struct {
	UserBaseDto
	ValidPassword string `json:"validPassword" binding:"required" gorm:"-" msg:"请再次输入密码"`
	Tel           string `json:"tel" binding:"len=11" msg:"手机号格式有误"`
}

// TableName 结构体方法
func (table *CreateUserDto) TableName() string {
	return "user"
}

type UserLoginDto struct {
	UserBaseDto
}

// TableName 结构体方法
func (table *UserLoginDto) TableName() string {
	return "user"
}

// LoginRes 登录业务返回实体
type LoginRes struct {
	ID       uint   `json:"id"`
	UserName string `json:"userName"`
	Token    string `json:"token"`
}

type UserUpdate struct {
	UserBaseDto
	Tel string `json:"tel" binding:"len=11,omitempty" msg:"手机号格式有误"`
}

// TableName 结构体方法
func (table *UserUpdate) TableName() string {
	return "user"
}

type UserDelete struct {
	gorm.Model
}

// TableName 结构体方法
func (table *UserDelete) TableName() string {
	return "user"
}
